﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace Jurassic_Island
{
    public class ENEventoLocalizacion
    {
        //atributos
        private int id_evloc;
        private string nombre_evloc;
        private string sitio_evloc;
        private double efecto_evloc;        
        
        CADEventosLocalizacion cadEventosLocalizacion = new CADEventosLocalizacion();//declaramos el CAD

        //propiedades
        public int Id_evloc
        {
            get{ return id_evloc; }
            set{ id_evloc=value; }
        }
        
        public string Nombre_evloc 
        {
            get{ return nombre_evloc; }
            set { nombre_evloc = value; }
        }
        public string Sitio_evloc
        {
            get { return sitio_evloc; }
            set { sitio_evloc = value; }
        }
        public double Efecto_evloc
        {
            get { return efecto_evloc; }
            set { efecto_evloc = value; }
        }
        
        public ENEventoLocalizacion()//Constructor por defecto
	    {
            id_evloc=0;
	        nombre_evloc="";
            sitio_evloc="";
            efecto_evloc=0;
        }

        public ENEventoLocalizacion(int id, string nombre, string sitio, double efecto)//constructor sobrecargado
        {
            id_evloc=id;
	        nombre_evloc=nombre;
            sitio_evloc=sitio;
            efecto_evloc=efecto;
        }        
        
        //METODOS
        public DataSet ObtenerListaEventosLocalizacion()
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosLocalizacion.ObtenerTablaEventosLocalizacion();
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet ObtenerNombresEventosLocalizacion()
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosLocalizacion.ObtenerNombreEventoLocalizacion();
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public bool ActualizarEventosLocalizacion(DataSet dsEventosLocalizacion)
        {
            bool resultado = false;

            try
            {
                resultado = cadEventosLocalizacion.ActualizarEventosLocalizacion(dsEventosLocalizacion);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }

        public bool InsertarEventosLocalizacion(bool actualizar = false)
        {
            bool resultado = false;

            try
            {
                DataSet dsEventosLocalizacion = cadEventosLocalizacion.ObtenerTablaEventosLocalizacion();
                DataRow dr;
                
                if (actualizar)
                {
                    //dr = dsCaminos.Tables["Caminos"].NewRow();
                    dr = dsEventosLocalizacion.Tables["Eventos_Localizacion"].Rows.Find(nombre_evloc.ToString());
                    //dsCaminos.Tables["Caminos"].Rows.Find(id.ToString()).;
                }
                else
                {
                    dr = dsEventosLocalizacion.Tables["Eventos_Localizacion"].NewRow();
                }
                //dsCaminos.Tables["Caminos"].Rows.Clear();

                dr["Nombre_evloc"] = nombre_evloc.ToString();
                dr["Sitio_evloc"] = sitio_evloc.ToString();
                dr["Efecto_evloc"] = efecto_evloc.ToString();
                
                if (actualizar)
                    dr.EndEdit();
                else
                    dsEventosLocalizacion.Tables["Eventos_Localizacion"].Rows.Add(dr);


                //resultado = cadLugares.ActualizarLugares(dsLugares);

            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public void EditarEventosLocalizacion()
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosLocalizacion.EditarTablaLugares(this.nombre_evloc, this.sitio_evloc, this.efecto_evloc);

            }

            catch (Exception ex)
            {
                throw (ex);
            }
        }

        public DataSet BorrarEventosLocalizacion(String nombre)
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosLocalizacion.ObtenerTablaEventosLocalizacion();

            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet BuscarEventosLocalizacion(String nombre)
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosLocalizacion.BuscarEventosLocalizacion(nombre);

            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }










      
      /* public string NuevoExamen()
        {
            return cadExamenes.InsertarExamen(this);
        }

        //método que devuelve toda la tabla Examenes en un DataSet
        public DataSet ObtenerTodosExamenes(ref string m)
        {
            return cadExamenes.ObtenerTablaExamenes(ref m);
        }

        //método para buscar examenes
        public DataSet BuscarExamenes(string numReferencia, string idioma, string nivel, string turno, DateTime fechaExamenD, string evaluacion)
        {
            return cadExamenes.BuscarExamenes(numReferencia,idioma,nivel,turno/*,fechaExamen,evaluacion);
        }

        //método para modificar un examen
        public string ModificarExamenes(string numReferencia, string idioma, string nivel, string turno, DateTime fechaExamen, string evaluacion)
        {
            return cadExamenes.ModificarExamenes(numReferencia,idioma,nivel,turno,fechaExamen,evaluacion);
        }

        //método para dar de baja un examen
        public string BajaExamenes(string numReferencia)
        {
            return cadExamenes.EliminarExamenes(numReferencia);
        }*/
    }
}
